using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PerformanceAnalytics")]
	public class PerformanceAnalytics : MonoBehaviour
	{
		public float m_initStartTime => method_2<float>("m_initStartTime");

		public bool m_isRecordingFPS => method_2<bool>("m_isRecordingFPS");

		public bool m_isReconnecting => method_2<bool>("m_isReconnecting");

		public string m_reconnectType => method_4("m_reconnectType");

		public float m_reconnectStartTime => method_2<float>("m_reconnectStartTime");

		public float m_disconnectTime => method_2<float>("m_disconnectTime");

		public string m_location => method_4("m_location");

		public PerformanceAnalytics(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PerformanceAnalytics(IntPtr address)
			: this(address, "PerformanceAnalytics")
		{
		}

		public static PerformanceAnalytics Get()
		{
			return MonoClass.smethod_15<PerformanceAnalytics>(TritonHs.MainAssemblyPath, "", "PerformanceAnalytics", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool isRecordingFPS()
		{
			return method_11<bool>("isRecordingFPS", Array.Empty<object>());
		}

		public void BeginStartupTimer()
		{
			method_8("BeginStartupTimer");
		}

		public void EndStartupTimer()
		{
			method_8("EndStartupTimer");
		}

		public void ReconnectStart(string reconnectType)
		{
			method_8("ReconnectStart", reconnectType);
		}

		public void ReconnectSceneLoaded(SceneMgr.Mode mode, PegasusScene scene, object userData)
		{
			method_8("ReconnectSceneLoaded", mode, scene, userData);
		}

		public void DisconnectEvent(string mode)
		{
			method_8("DisconnectEvent", mode);
		}

		public void SendDisconnectAndTimeoutEvents()
		{
			method_8("SendDisconnectAndTimeoutEvents");
		}

		public void DisconnectTimeReset(SceneMgr.Mode mode, PegasusScene scene, object userData)
		{
			method_8("DisconnectTimeReset", mode, scene, userData);
		}

		public void ReconnectEnd(bool success)
		{
			method_8("ReconnectEnd", success);
		}

		public void StartRecordingGameplayFPS()
		{
			method_8("StartRecordingGameplayFPS");
		}

		public void StartRecordingCollectionManagerFPS()
		{
			method_8("StartRecordingCollectionManagerFPS");
		}

		public void EndRecordingFPS()
		{
			method_8("EndRecordingFPS");
		}

		public void SceneLoadedEvent(SceneMgr.Mode prevMode, PegasusScene prevScene, object userData)
		{
			method_8("SceneLoadedEvent", prevMode, prevScene, userData);
		}

		public void ScenePreUnloadEvent(SceneMgr.Mode prevMode, PegasusScene prevScene, object userData)
		{
			method_8("ScenePreUnloadEvent", prevMode, prevScene, userData);
		}

		public string GetCountry()
		{
			return method_13("GetCountry");
		}

		public string GetConnectionType()
		{
			return method_13("GetConnectionType");
		}
	}
}
